AT-NFC  2.1 (win)
AT-NFC kernel set
hal_mem.h
Go to the documentation of this file.
1 #ifndef HAL_MEM_H
2 #define HAL_MEM_H
3 
4 /* ******************************* HAL MEM API declaration ********************************* */
8 /* ***************************************************************************************** */
9 
10 /* ***************************************************************************************** */
18 /* ***************************************************************************************** */
19 
20 /* ***************************** byte manipulation marcos ********************************** */
21 #define HAL_MAKE_INT16(a, b) ((KER_INT16U)(((KER_BYTE)(((KER_INT32U)(a)) & 0xff)) | ((KER_INT16U)((KER_BYTE)(((KER_INT32U)(b)) & 0xff))) << 8))
22 #define HAL_MAKE_INT32(a, b) ((KER_INT32U)(((KER_INT16U)(((KER_INT32U)(a)) & 0xffff)) | ((KER_INT32U)((KER_INT16U)(((KER_INT32U)(b)) & 0xffff))) << 16))
23 #define HAL_LO_INT16(l) ((KER_INT16U)(((KER_INT32U)(l)) & 0xffff))
24 #define HAL_HI_INT16(l) ((KER_INT16U)((((KER_INT32U)(l)) >> 16) & 0xffff))
25 #define HAL_LO_INT8(w) ((KER_BYTE)(((KER_INT32U)(w)) & 0xff))
26 #define HAL_HI_INT8(w) ((KER_BYTE)((((KER_INT32U)(w)) >> 8) & 0xff))
28 #ifndef KER_MEM_CMP
29 /* ************************************* HAL_MEM_CMP *************************************** */
32 #define KER_MEM_CMP(Buf1,Buf2,Len) hal_mem_cmp(KER_CTX (Buf1), (Buf2), (Len))
33 /* ***************************************************************************************** */
34 #endif
35 
36 #ifndef KER_MEM_SET
37 /* ************************************* KER_MEM_SET *************************************** */
40 #define KER_MEM_SET(Buf,Len,Val,Count) hal_mem_set(KER_CTX (Buf), (Len), (Val), (Count))
41 /* ***************************************************************************************** */
42 #endif
43 
44 #ifndef KER_MEM_CPY
45 /* ************************************* KER_MEM_CPY *************************************** */
48 #define KER_MEM_CPY(Dest,DestLen,Src,SrcLen) hal_mem_cpy(KER_CTX (Dest), (DestLen), (Src), (SrcLen))
49 /* ***************************************************************************************** */
50 #endif
51 
52 #ifndef KER_MEM_MOVE
53 /* ************************************* KER_MEM_MOVE ************************************** */
56 #define KER_MEM_MOVE(Dest,DestLen,Src,SrcLen) hal_mem_move(KER_CTX (Dest), (DestLen), (Src), (SrcLen))
57 /* ***************************************************************************************** */
58 #endif
59 
60 #ifndef KER_MEM_ADD
61 /* ************************************* KER_MEM_ADD *************************************** */
64 #define KER_MEM_ADD(Dest,DestLen,DestOffset,Src,SrcLen) hal_mem_add(KER_CTX (Dest), (DestLen), (DestOffset), (Src), (SrcLen))
65 /* ***************************************************************************************** */
66 #endif
67 
68 #ifndef KER_MEM_ALLOC
69 /* ************************************ KER_MEM_ALLOC ************************************** */
72 #define KER_MEM_ALLOC(Size) hal_alloc_mem(KER_CTX Size)
73 /* ***************************************************************************************** */
74 #endif
75 
76 #ifndef KER_MEM_FREE
77 /* ************************************* KER_MEM_FREE ************************************** */
80 #define KER_MEM_FREE(Buf) hal_release_mem(KER_CTX Buf)
81 /* ***************************************************************************************** */
82 #endif
83 
84 #ifndef KER_MEM_FREE_EX
85 /* *********************************** KER_MEM_FREE_EX ************************************* */
88 #define KER_MEM_FREE_EX(Buf,Size) hal_release_mem_ex(KER_CTX (Buf), (Size))
89 /* ***************************************************************************************** */
90 #endif
91 
92 /* ************************************* hal_mem_cmp *************************************** */
104 /* ***************************************************************************************** */
105 extern KER_INT32S hal_mem_cmp(KER_CTX_PARAM const KER_VOID* pvBuffer1, const KER_VOID* pvBuffer2, KER_INT16U usCount);
106 
107 /* ************************************* hal_mem_set *************************************** */
118 /* ***************************************************************************************** */
119 extern KER_VOID* hal_mem_set(KER_CTX_PARAM KER_VOID* pvDestBuffer, KER_INT16U usDestBufferSize, KER_BYTE btValue, KER_INT16U usCount);
120 
121 /* ************************************* hal_mem_cpy *************************************** */
132 /* ***************************************************************************************** */
133 extern KER_INT32U hal_mem_cpy(KER_CTX_PARAM KER_VOID* pvDestBuffer, KER_INT16U usDestBufferSize, const KER_VOID* pvSourceBuffer, KER_INT16U usSourceBufferSize);
134 
135 /* ************************************* hal_mem_move ************************************** */
147 /* ***************************************************************************************** */
148 extern KER_VOID* hal_mem_move(KER_CTX_PARAM KER_VOID* pvDestBuffer, KER_INT16U usDestBufferSize, KER_VOID* pvSourceBuffer, KER_INT16U usSourceBufferSize);
149 
150 /* ************************************* hal_mem_add *************************************** */
162 /* ***************************************************************************************** */
163 extern KER_INT32U hal_mem_add(KER_CTX_PARAM KER_VOID* pvDestBuffer, KER_INT16U usDestBufferSize, KER_INT16U usDestBufferOffset, const KER_VOID* pvSourceBuffer, KER_INT16U usSourceBufferSize);
164 
165 /* ************************************* hal_sprintf *************************************** */
175 /* ***************************************************************************************** */
176 extern KER_INT32U KER_CDECL hal_sprintf(KER_CTX_PARAM KER_CHAR* pchDestBuffer, KER_INT16U usDestBufferSize, const KER_CHAR* pchFormat, ...);
177 
178 /* ************************************ hal_alloc_mem ************************************** */
188 /* ***************************************************************************************** */
190 
191 /* *********************************** hal_release_mem ************************************* */
200 /* ***************************************************************************************** */
202 
203 /* ********************************* hal_release_mem_ex ************************************ */
213 /* ***************************************************************************************** */
215 
216 #endif /* HAL_MEM_H */
void KER_VOID
Definition: emv_platform.h:66
KER_INT8U KER_BOOL
Definition: emv_platform.h:67
uint8_t KER_BYTE
Definition: emv_platform.h:70
unsigned int KER_INT32U
Definition: emv_platform.h:63
unsigned short KER_INT16U
Definition: emv_platform.h:61
char KER_CHAR
Definition: emv_platform.h:65
signed int KER_INT32S
Definition: emv_platform.h:64
#define KER_CTX_PARAM
Definition: emv_context.h:53
KER_INT32S hal_mem_cmp(KER_CTX_PARAM const KER_VOID *pvBuffer1, const KER_VOID *pvBuffer2, KER_INT16U usCount)
Compare memory buffers.
KER_INT32U hal_mem_cpy(KER_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, const KER_VOID *pvSourceBuffer, KER_INT16U usSourceBufferSize)
Copy one memory buffer to another.
KER_INT32U hal_mem_add(KER_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, KER_INT16U usDestBufferOffset, const KER_VOID *pvSourceBuffer, KER_INT16U usSourceBufferSize)
Add memory buffer to existing buffer with offset.
KER_VOID * hal_alloc_mem(KER_CTX_PARAM KER_INT16U usBufferSize)
allocate memory buffer
KER_VOID * hal_mem_set(KER_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, KER_BYTE btValue, KER_INT16U usCount)
Reset memory buffer with specified value.
KER_BOOL hal_release_mem(KER_CTX_PARAM KER_VOID *pBuffer)
release previously allocated memory buffer
KER_BOOL hal_release_mem_ex(KER_CTX_PARAM KER_VOID *pBuffer, KER_INT16U usBufferSize)
release previously allocated memory buffer (reset it firstly for PCI SSS)
KER_VOID * hal_mem_move(KER_CTX_PARAM KER_VOID *pvDestBuffer, KER_INT16U usDestBufferSize, KER_VOID *pvSourceBuffer, KER_INT16U usSourceBufferSize)
Copy one memory buffer to another (event if buffer overlaped)
KER_INT32U KER_CDECL hal_sprintf(KER_CTX_PARAM KER_CHAR *pchDestBuffer, KER_INT16U usDestBufferSize, const KER_CHAR *pchFormat,...)
sprintf_s analog